package com.bdqn.spark.chapter05.value

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

object Spark02_RDD_Operator_Transform {
  def main(args: Array[String]): Unit = {

    val conf: SparkConf = new SparkConf()
      .setMaster("local[*]")
      .setAppName("practise")
    val sc: SparkContext = new SparkContext(conf)

    val sourceRDD = sc.makeRDD(List(1, 2, 3, 4), 2)

    // 算子 - mapPartitions - 算子中的函数只执行一遍
    // 把每个分区中的数据*2
    sourceRDD.mapPartitions(iter =>{
      // [1 2]
      // iter是一个scala中的集合
      // 这里的map不是算子，是scala集合中的一个方法
      println("=============")
      iter.map(_ * 2)
    }).collect.foreach(println)


    sc.stop()
  }
}
